The present invention relates generally to terminal controllers and more specifically to techniques for placing characters on a display.
One of the main functions of a terminal is to place rows of characters on a screen. Associated with the terminal is a display memory (also sometimes referred to as a screen buffer, video buffer, or coax buffer), which stores a character code and attribute for each character position on the screen. The display data are updated from the keyboard and from communications with the host computer. Font bitmaps for the characters are typically stored in a separate non-volatile font memory. In order to place a row of characters on the screen, repeated accesses are made to the display memory, appropriate locations in the font memory are accessed to build up the row of characters, a scan line at a time. This is a fairly straightforward process, since a given position on the screen corresponds to a given location in the display memory, and a given character code corresponds to a known starting address in font memory, with the particular scan line providing a known and predictable offset.
One level of sophistication is the provision of one or more windows on the screen. In this context, a window refers to a region of the display which is to contain characters typically unrelated to the characters in the surrounding region. Normally, a separate window buffer is provided for the window, and relevant portions of the display memory are overwritten with a copy of the relevant portions of the window buffer.
Sophistication is sometimes another word for complication, which is the case here. Providing windows requires extra memory and extra overhead in transferring blocks of memory from one place to another.
A further level of sophistication is supporting interlaced scanning. As is well known, an interlaced display typically provides a given level of resolution at a cheaper price. A normal CRT controller typically supports either non-interlace or single interlace scanning. Support of three-way or four-way interlace would presumably require additional circuitry.